﻿
Imports System.Windows.Forms
Imports Microsoft.Office.Interop
Imports System.Data
Imports System.Object
Public Class Export


    Public Shared Sub ExportDSNha(ByVal dt As DataTable, ByVal sheetName As String, ByVal title As String)


        'Tạo các đối tượng Excel
        Dim oExcel As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        Dim oBooks As Microsoft.Office.Interop.Excel.Workbooks
        Dim oSheets As Microsoft.Office.Interop.Excel.Sheets
        Dim oBook As Microsoft.Office.Interop.Excel.Workbook
        Dim oSheet As Microsoft.Office.Interop.Excel.Worksheet

        'Tạo mới một Excel WorkBook 
        oExcel.Visible = True
        oExcel.DisplayAlerts = False
        oExcel.Application.SheetsInNewWorkbook = 1
        oBooks = oExcel.Workbooks

        oBook = oExcel.Workbooks.Add(Type.Missing)
        oSheets = oBook.Worksheets
        oSheet = oSheets.Item(1)
        oSheet.Name = sheetName

        'Tạo phần đầu nếu muốn
        Dim head As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A1", "L1")
        head.MergeCells = True
        head.Value2 = title
        head.Font.Bold = True
        head.Font.Name = "Tahoma"
        head.Font.Size = "18"
        head.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter

        'Tạo tiêu đề cột 
        Dim cl1 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A3", "A3")
        cl1.Value2 = "Mã Nhà"
        cl1.ColumnWidth = 13.5

        Dim cl2 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("B3", "B3")
        cl2.Value2 = "Số Nhà"
        cl2.ColumnWidth = 13.5

        Dim cl3 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("C3", "C3")
        cl3.Value2 = "Đường"
        cl3.ColumnWidth = 30.0

        Dim cl4 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("D3", "D3")
        cl4.Value2 = "Diện Tích"
        cl4.ColumnWidth = 20.0

        Dim cl5 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("E3", "E3")
        cl5.Value2 = "Giá"
        cl5.ColumnWidth = 25.0

        Dim cl6 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("F3", "F3")
        cl6.Value2 = "Tình Trạng Nhà"
        cl6.ColumnWidth = 13.5

        Dim cl7 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("G3", "G3")
        cl7.Value2 = "Mã Loại Nhà"
        cl7.ColumnWidth = 13.5

        Dim cl8 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("H3", "H3")
        cl8.Value2 = "Mã Quận"
        cl8.ColumnWidth = 13.5

        Dim cl9 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("I3", "I3")
        cl9.Value2 = "Tạm Xóa"
        cl9.ColumnWidth = 13.5

        Dim cl10 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("J3", "J3")
        cl10.Value2 = "Mã Người Đăng"
        cl10.ColumnWidth = 13.5

        Dim cl11 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("K3", "K3")
        cl11.Value2 = "Tiêu Đề"
        cl11.ColumnWidth = 13.5

        Dim cl12 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("L3", "L3")
        cl12.Value2 = "Ngày Đăng"
        cl12.ColumnWidth = 13.5

        

        Dim rowHead As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A3", "L3")
        rowHead.Font.Bold = True

        'Kẻ viền
        rowHead.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid
        ' Thiết lập màu nền
        rowHead.Interior.ColorIndex = 15
        rowHead.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter


        ' Tạo mẳng đối tượng để lưu dữ toàn bồ dữ liệu trong DataTable,
        ' vì dữ liệu được được gán vào các Cell trong Excel phải thông qua object thuần.

        Dim arr(dt.Rows.Count, dt.Columns.Count) As Object

        'Chuyển dữ liệu từ DataTable vào mảng đối tượng
        For r As Integer = 0 To dt.Rows.Count - 1
            Dim dr As DataRow = dt.Rows(r)
            For c As Integer = 0 To dt.Columns.Count - 1
                arr(r, c) = dr(c)
            Next
        Next

        'Thiết lập vùng điền dữ liệu
        Dim rowStart As Integer = 4
        Dim columnStart As Integer = 1

        Dim rowEnd As Integer = rowStart + dt.Rows.Count - 1
        Dim columnEnd As Integer = dt.Columns.Count

        ' Ô bắt đầu điền dữ liệu
        Dim c1 As Microsoft.Office.Interop.Excel.Range = oSheet.Cells(rowStart, columnStart)
        ' Ô kết thúc điền dữ liệu
        Dim c2 As Microsoft.Office.Interop.Excel.Range = oSheet.Cells(rowEnd, columnEnd)
        ' Lấy về vùng điền dữ liệu
        Dim range As Microsoft.Office.Interop.Excel.Range = oSheet.Range(c1, c2)

        'Điền dữ liệu vào vùng đã thiết lập
        range.Value2 = arr

        'Kẻ viền
        range.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid
        '
        Dim format_ngay As Microsoft.Office.Interop.Excel.Range = oSheet.Range("L4", "L" & rowEnd)
        format_ngay.ColumnWidth = 13.5
        format_ngay.NumberFormat = "dd/MM/yyyy"

        Dim format_sonha As Microsoft.Office.Interop.Excel.Range = oSheet.Range("B4", "B" & rowEnd)
        format_sonha.ColumnWidth = 13.5



        Dim c3 As Microsoft.Office.Interop.Excel.Range
        Dim c4 As Microsoft.Office.Interop.Excel.Range
        For i As Integer = columnStart To columnEnd
            c3 = oSheet.Cells(rowEnd, i)
            c4 = oSheet.Range(c1, c3)
            oSheet.Range(c3, c4).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter

        Next

    End Sub

    Public Shared Sub ExportDSKhachHang(ByVal dt As DataTable, ByVal sheetName As String, ByVal title As String)


        'Tạo các đối tượng Excel
        Dim oExcel As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        Dim oBooks As Microsoft.Office.Interop.Excel.Workbooks
        Dim oSheets As Microsoft.Office.Interop.Excel.Sheets
        Dim oBook As Microsoft.Office.Interop.Excel.Workbook
        Dim oSheet As Microsoft.Office.Interop.Excel.Worksheet

        'Tạo mới một Excel WorkBook 
        oExcel.Visible = True
        oExcel.DisplayAlerts = False
        oExcel.Application.SheetsInNewWorkbook = 1
        oBooks = oExcel.Workbooks

        oBook = oExcel.Workbooks.Add(Type.Missing)
        oSheets = oBook.Worksheets
        oSheet = oSheets.Item(1)
        oSheet.Name = sheetName

        'Tạo phần đầu nếu muốn
        Dim head As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A1", "E1")
        head.MergeCells = True
        head.Value2 = title
        head.Font.Bold = True
        head.Font.Name = "Tahoma"
        head.Font.Size = "18"
        head.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter

        'Tạo tiêu đề cột 
        Dim cl1 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A3", "A3")
        cl1.Value2 = "Mã Khách Thuê"
        cl1.ColumnWidth = 13.5

        Dim cl2 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("B3", "B3")
        cl2.Value2 = "Họ Tên"
        cl2.ColumnWidth = 25.0

        Dim cl3 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("C3", "C3")
        cl3.Value2 = "Điện Thoại"
        cl3.ColumnWidth = 30.0

        Dim cl4 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("D3", "D3")
        cl4.Value2 = "Tình Trạng"
        cl4.ColumnWidth = 20.0

        Dim cl5 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("E3", "E3")
        cl5.Value2 = "Tạm Xóa"
        cl5.ColumnWidth = 25.0


        Dim rowHead As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A3", "E3")
        rowHead.Font.Bold = True

        'Kẻ viền
        rowHead.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid
        ' Thiết lập màu nền
        rowHead.Interior.ColorIndex = 15
        rowHead.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter


        ' Tạo mẳng đối tượng để lưu dữ toàn bồ dữ liệu trong DataTable,
        ' vì dữ liệu được được gán vào các Cell trong Excel phải thông qua object thuần.
        Dim arr(dt.Rows.Count, dt.Columns.Count) As Object

        'Chuyển dữ liệu từ DataTable vào mảng đối tượng
        For r As Integer = 0 To dt.Rows.Count - 1
            Dim dr As DataRow = dt.Rows(r)
            For c As Integer = 0 To dt.Columns.Count - 1
                arr(r, c) = dr(c)
            Next
        Next

        'Thiết lập vùng điền dữ liệu
        Dim rowStart As Integer = 4
        Dim columnStart As Integer = 1

        Dim rowEnd As Integer = rowStart + dt.Rows.Count - 1
        Dim columnEnd As Integer = dt.Columns.Count

        ' Ô bắt đầu điền dữ liệu
        Dim c1 As Microsoft.Office.Interop.Excel.Range = oSheet.Cells(rowStart, columnStart)
        ' Ô kết thúc điền dữ liệu
        Dim c2 As Microsoft.Office.Interop.Excel.Range = oSheet.Cells(rowEnd, columnEnd)
        ' Lấy về vùng điền dữ liệu
        Dim range As Microsoft.Office.Interop.Excel.Range = oSheet.Range(c1, c2)

        'Điền dữ liệu vào vùng đã thiết lập
        range.Value2 = arr

        'Kẻ viền
        range.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid
        '

        Dim c3 As Microsoft.Office.Interop.Excel.Range
        Dim c4 As Microsoft.Office.Interop.Excel.Range
        For i As Integer = columnStart To columnEnd
            c3 = oSheet.Cells(rowEnd, i)
            c4 = oSheet.Range(c1, c3)
            oSheet.Range(c3, c4).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter

        Next

    End Sub


    Public Shared Sub ExportDSChuNha(ByVal dt As DataTable, ByVal sheetName As String, ByVal title As String)


        'Tạo các đối tượng Excel
        Dim oExcel As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        Dim oBooks As Microsoft.Office.Interop.Excel.Workbooks
        Dim oSheets As Microsoft.Office.Interop.Excel.Sheets
        Dim oBook As Microsoft.Office.Interop.Excel.Workbook
        Dim oSheet As Microsoft.Office.Interop.Excel.Worksheet

        'Tạo mới một Excel WorkBook 
        oExcel.Visible = True
        oExcel.DisplayAlerts = False
        oExcel.Application.SheetsInNewWorkbook = 1
        oBooks = oExcel.Workbooks

        oBook = oExcel.Workbooks.Add(Type.Missing)
        oSheets = oBook.Worksheets
        oSheet = oSheets.Item(1)
        oSheet.Name = sheetName

        'Tạo phần đầu nếu muốn
        Dim head As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A1", "F1")
        head.MergeCells = True
        head.Value2 = title
        head.Font.Bold = True
        head.Font.Name = "Tahoma"
        head.Font.Size = "18"
        head.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter

        'Tạo tiêu đề cột 
        Dim cl1 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A3", "A3")
        cl1.Value2 = "Mã Chủ Nhà"
        cl1.ColumnWidth = 13.5

        Dim cl2 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("B3", "B3")
        cl2.Value2 = "Họ Tên"
        cl2.ColumnWidth = 25.0

        Dim cl3 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("C3", "C3")
        cl3.Value2 = "Địa Chỉ"
        cl3.ColumnWidth = 30.0

        Dim cl4 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("D3", "D3")
        cl4.Value2 = "Điện Thoại"
        cl4.ColumnWidth = 20.0

        Dim cl5 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("E3", "E3")
        cl5.Value2 = "Email"
        cl5.ColumnWidth = 25.0

        Dim cl6 As Microsoft.Office.Interop.Excel.Range = oSheet.Range("F3", "F3")
        cl6.Value2 = "Tạm Xóa"
        cl6.ColumnWidth = 13.5


        Dim rowHead As Microsoft.Office.Interop.Excel.Range = oSheet.Range("A3", "F3")
        rowHead.Font.Bold = True

        'Kẻ viền
        rowHead.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid
        ' Thiết lập màu nền
        rowHead.Interior.ColorIndex = 15
        rowHead.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter


        ' Tạo mẳng đối tượng để lưu dữ toàn bồ dữ liệu trong DataTable,
        ' vì dữ liệu được được gán vào các Cell trong Excel phải thông qua object thuần.
        Dim arr(dt.Rows.Count, dt.Columns.Count) As Object

        'Chuyển dữ liệu từ DataTable vào mảng đối tượng
        For r As Integer = 0 To dt.Rows.Count - 1
            Dim dr As DataRow = dt.Rows(r)
            For c As Integer = 0 To dt.Columns.Count - 1
                arr(r, c) = dr(c)
            Next
        Next

        'Thiết lập vùng điền dữ liệu
        Dim rowStart As Integer = 4
        Dim columnStart As Integer = 1

        Dim rowEnd As Integer = rowStart + dt.Rows.Count - 1
        Dim columnEnd As Integer = dt.Columns.Count

        ' Ô bắt đầu điền dữ liệu
        Dim c1 As Microsoft.Office.Interop.Excel.Range = oSheet.Cells(rowStart, columnStart)
        ' Ô kết thúc điền dữ liệu
        Dim c2 As Microsoft.Office.Interop.Excel.Range = oSheet.Cells(rowEnd, columnEnd)
        ' Lấy về vùng điền dữ liệu
        Dim range As Microsoft.Office.Interop.Excel.Range = oSheet.Range(c1, c2)

        'Điền dữ liệu vào vùng đã thiết lập
        range.Value2 = arr

        'Kẻ viền
        range.Borders.LineStyle = Microsoft.Office.Interop.Excel.Constants.xlSolid
        '

        Dim c3 As Microsoft.Office.Interop.Excel.Range
        Dim c4 As Microsoft.Office.Interop.Excel.Range
        For i As Integer = columnStart To columnEnd
            c3 = oSheet.Cells(rowEnd, i)
            c4 = oSheet.Range(c1, c3)
            oSheet.Range(c3, c4).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter

        Next

    End Sub
End Class
